Prior to the release of computer software, it is necessary to certify the software by performing a number of tests. In particular, it is necessary to test the software on each operating system for which it is intended for use. Installation testing is performed to ensure that the software can be properly installed on the desired operating system. Integration testing is performed to ensure that the software integrates properly with the components of the operating system, as well as any other applications installed on the computer system, to ensure that the software will function properly. Migration testing is performed for software upgrades to ensure that upgrade will function properly. Furthermore, depending on the nature of the software, a number of other tests may be performed, such as testing the backend database configuration and testing the operating system configuration.
Typically, because businesses and organizations may utilize different operating systems, software is released for several operating systems and computing platforms. As described above, the software needs to be tested on every operating system for which it is available, ensuring its operability to the purchaser.
Currently, software certification testing is performed manually. Typically, a software engineer searches a computer lab having computer systems with the required operating systems. Typically, the computer lab will not have the required number of computer systems that are set up in the desired testing configuration. In order to test the software in a desired configuration that is not available in the lab, the software engineer is required to manually install the desired operating system on the number of computer systems required for testing. Uninstalling and reinstalling operating systems on computer systems is time intensive, and typically requires an engineer be present throughout the entire installation process. Furthermore, since software must typically must be tested on several computer operating systems, thus requiring installation of a number of operating systems on a number of computer systems, the testing process may be very time consuming. Additionally, since the operating system installation is performed manually, current operating system installation is error prone.